package co.yixiang.yshop.module.order.controller.admin.storeorder.vo;

import co.yixiang.yshop.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 订单分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class StoreOrderPageReqVO extends PageParam {

    @Schema(description = "订单号", example = "20527")
    private String orderId;

    @Schema(description = "用户姓名", example = "张三")
    private String realName;

    @Schema(description = "用户电话")
    private String userPhone;

    @Schema(description = "添加时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "订单状态搜索值：  0:未支付   1：未发货  2：待收货  3：待评价  4：交易完成  5：已退款  6：已删除")
    private Integer orderStatus;

    @Schema(description = "多订单状态搜索值：  0:未支付   1：未发货  2：待收货  3：待评价  4：交易完成  5：已退款  6：已删除")
    private List<Integer> orderStatusSet;

    @Schema(description = "支付状态搜索值")
    private String payStatus;

    @Schema(description = "配送方式 1=快递 ，2=门店自提", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Integer shippingType;

    @Schema(description = "核销状态")
    private Integer writeOffStatus;

    @Schema(description = "门店id")
    private Long storeId;


    @Schema(description = "活动id（用于积分兑换记录）")
    private Long campaignId;

    @Schema(description = "活动类型：1、拼团，2、秒杀，3、限时折扣，4：积分兑换 （用于积分兑换记录）")
    private Integer campaignType;

    @Schema(description = "混合搜索 （用于积分兑换记录）")
    private String search;

}
